1. Field of the Invention
This invention generally relates to wireless communications and, more particularly, to a system and method for initiating and establishing a Bluetooth protocol network connection.
2. Description of the Related Art
Bluetooth is a protocol for short-range wireless communications. The current mechanism for a Bluetooth device to access a local network of linked Bluetooth devices (a piconet) requires several steps. First, an inquiry is performed to find all nearby devices. Then, a Service Discovery Protocol (SDP) is used to discover whether any of the found devices perform a service required by the inquiring device. Finally, the inquiring device makes a connection to the device that provides the required service.
Each of these process steps can take a long time to complete. For example, an inquiry typically takes 10 seconds and there is no guarantee that all the surrounding devices are found. It should also be noted that the query services associated with SDP actually involve the establishment of baseband link, as well as Link Manger Protocol (LMP), Logic Link Control, and Adaptation Protocol (L2CAP) connections, as SDP uses functions in these lower layer protocols. Therefore, the time required to find a specific service among a plurality of devices can be considerable if the inquiring device has no prior knowledge of the piconet or other Bluetooth devices linked to the piconet.
The time required for a device to respond to an inquiry or page is dependent on existing piconet traffic, as the responding device needs to suspend whole, or part of its ongoing activities in order to enter the inquiry_scan or page_scan state. Thus, the throughput and capacity of existing connections in a piconet are compromised when an inquiring device attempts to establish communications with the piconet.
FIG. 1 illustrates a typical Bluetooth piconet (prior art). A Bluetooth piconet consists of a master and at least one slave. A master is a device that initiates the connection. A slave is a device that responds to the request for connection and successfully connects to the master. There can be as many as seven active slaves in one piconet. As shown in FIG. 1, A is the master, B is the slave, and C has not yet connected to either A or B.
Inquiry and Page are two basic processes needed for a Bluetooth device to establish a link at baseband level. Through an inquiry, a device receives the Bluetooth Address (BD_addr) of a nearby device, or devices. Inquiry can be skipped if a device already knows the BD_addr of the device it would like to connect with. Paging allows a device to request connection to another device with a specified BD_addr. A device must be in the inquiry_scan or page_scan states in order to respond to inquiry and/or page from other devices. Detail descriptions of the inquiry and page processes can be found in the Bluetooth Baseband Specification, which is incorporated herein by reference.
In a first scenario, a Bluetooth device is in the proximity of a piconet and is looking for a specific service. The piconet is actively carrying traffic between existing members of the piconet. This is the situation of device C in FIG. 1. The following steps must be performed before device C can become a piconet member:
1) assuming device C has no prior knowledge of the piconet and does not know of a device in the piconet that offers the service it requires, device C makes an inquiry;
2) device C pages all the devices it finds;
3) if a baseband link is established to a slave device, device C proceeds with higher layer protocols, so that SDP can be used to query for the desired service attributes;
4) Step 3 is repeated with other devices until the desired service is found; and,
5) a connection to the device providing the desired service is established, with all necessary upper layer protocols and application profiles.
There are several problems that can occur in the above-mentioned scenario. First, the inquiry process is rather lengthy, typically taking 10.24 seconds to perform. There is no guarantee that all devices within range will respond to an inquiry on the first attempt either, especially if they are part of active piconets. The success of an inquiry depends on the amount of time a responding device spends in inquiry_scan mode, and the relative clock offset between involved devices. Bad channel conditions or a large clock offset can prevent a device from replying to an inquiry.
Second, it is possible that a device in the pre-existing piconet never enters the inquiry_scan or page_scan states due to heavy traffic. How often a Bluetooth device enters discoverable or connectable states is defined in Generic Access Profile (GAP) and is implementation dependent.
Third, a scatternet may be formed if device C successfully makes a connection with both the master (device A) and the slave (device B). A scatternet is a group of piconets including one (or more) device connected to two overlapping piconets by time multiplexing. The result is two coexisting piconets with one device participating in both. According to the Bluetooth Specification, the device that initiates page is master of the piconet. When A is paged, it is slave of the new piconet, while simultaneously being master of the original piconet. When B is paged, it becomes a slave in the new piconet while remaining a slave in the original piconet. The operation of a scatternet is not well defined and it is envisaged that the overhead associated with such an event is considerable.
FIG. 2 illustrates the general format of a Bluetooth baseband packet (prior art). There are 16 different packet types currently defined in Bluetooth Specifications. Some packets may not have all three fields. For example, an ID packet includes only the Access Code (AC), and POLL/NULL packets contain both an AC and Packet Header.
FIG. 3 illustrates the payload of an FHS packet (prior art). A FHS packet is of special interest, as it is mostly used during the channel access process. The BD_addr of a device sending the packet is carried in three different fields in the FHS (frequency hop synchronization) payload: LAP, UAP, and NAP. These three fields together constitute the 48-bit BD_addr. During a Page, the master device assigns the slave device an Active Member address (AM_addr) within the piconet. The master is then able to use the AM_addr in the packet header to direct the packet to a particular active slave in the piconet. Also, the CLK27-2 field contains the value of the system clock for device sending the FHS packet, which permits other devices to synchronize the system clock and time slot.
Bluetooth (BT) is a frequency hopping system and uses a Time Division Duplex (TDD) scheme between master and slave. Master and slave devices in a piconet follow the channel hopping sequence, which in turn, is determined by the BD_addr and clock (CLK) of the master. The channel hopping sequence will hop over all 79 frequencies in the 2.4 GHz ISM (Industrial, Scientific, Medical) band. The appearance of each frequency is pseudo random and of equal probability.
FIG. 4 illustrates the master control of traffic in the piconet through the addressing of each slave's Active Member address (AM_addr) field in the Packet Header (prior art). The Packet Type field enables the slave to determine the number of time slots that are occupied by master's packet. The slave being addressed is allowed to transmit packets to the master in the slot immediately following the last time slot of master's packet. The master assigns the AM_addr of each slave during Page. There can be as many as seven active slaves in one piconet.
It would be advantageous if a Bluetooth device could quickly become a member of a piconet.
It would be advantageous if a Bluetooth device could become a member of a piconet with minimal interruption to any pre-existing piconet member devices.
It would be advantageous if a Bluetooth device could become a member of a piconet without paging, or making inquiries to slave devices in the piconet.
It would be advantageous if a Bluetooth device could join a piconet as a slave without the master device, even temporarily, losing control over the piconet.